
// ==UserScript==
// @name         2dfan去广告
// @namespace    https://gitcode.com/gagghik1
// @homepage     https://gitcode.com/gagghik1/greyz4k
// @version      0.9
// @description  移除百度移动端页面中的嵌套广告和底部固定广告条
// @author       欧尼酱的可爱琳酱♡
// @match        *://*.2dfan.com/*
// @icon         https://raw.gitcode.com/gagghik1/greyz4k/raw/main/2dfan/icon.png
// @grant        none
// @run-at       document-start
// @downloadURL  https://raw.gitcode.com/gagghik1/greyz4k/raw/main/2dfan/user.js
// @updateURL    https://raw.gitcode.com/gagghik1/greyz4k/raw/main/2dfan/meta.js
// ==/UserScript==

(function() {
    'use strict';

    // 广告选择器列表（新增banner横幅广告规则）
    const AD_SELECTORS = [
        // 对联广告
        '.adv-couplets.index_bg_box#index_bg_box', 
        // 固定方块广告
        '#adv-fixed-square',
        // 底部固定广告
        '#adv-fixed-bottom',
        // 无ID图片广告
        'a[rel="”nofollow”"][href^="/jump_to/"] img.adv-auto-width-pic',
        // 新增banner横幅广告
        '.span12.no-ml.banner.mt-10 a[rel="”nofollow”"][href^="/jump_to/"]'
    ].join(',');

    // 移除广告的核心函数
    function removeAds() {
        const adElements = document.querySelectorAll(AD_SELECTORS);
        if (adElements.length > 0) {
            adElements.forEach(ad => {
                // 对于嵌套广告，移除最外层容器（避免残留空div）
                const target = ad.closest('.span12.no-ml.banner.mt-10') || ad;
                target.remove();
                console.log('已移除广告:', target);
            });
        }
    }

    // 初始加载时执行一次
    removeAds();

    // DOM变化监听：捕获动态生成的广告
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.addedNodes.length > 0) {
                removeAds();
            }
        });
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    window.addEventListener('unload', () => {
        observer.disconnect();
    });
})();